package com.gitee.cliveyuan.tools.data;

import com.gitee.cliveyuan.tools.enums.ExcelType;
import com.google.common.collect.Lists;
import lombok.Builder;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;

import java.io.File;
import java.io.Serializable;
import java.util.Collection;
import java.util.List;

/**
 * Created by Clive on 2019/10/28.
 */
@Data
@Builder
@Slf4j
public class ExcelWriter implements Serializable {

    private String filePath;
    @Builder.Default
    private ExcelType excelType = ExcelType.XLSX;
    @Builder.Default
    private List<SheetContent> sheetContentList = Lists.newArrayList();

    public ExcelWriter addSheetContent(String sheetName, String[] headers, Collection data) {
        this.sheetContentList.add(new SheetContent(sheetName, headers, data));
        return this;
    }

    public File write() {
        ExcelGenerateParam param = ExcelGenerateParam.builder()
                .filePath(filePath)
                .excelType(excelType)
                .sheetContentList(sheetContentList)
                .build();
        return TableUtils.generate(param);
    }

}
